package com.magina.common.utils;

import java.io.File;
import java.util.ArrayList;
import java.util.List;

/**
 * 测试寻找路径下文件 & 替换文件名
 */
public class FileRenameUtil {
    public static void getFileList(String strPath,List<File>  filelist) {
        File dir = new File(strPath);
        File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组
        if (null != files) {
            for (File file : files){
                String fileName = file.getName();
                if (file.isDirectory()) { //判断是文件还是文件夹
                    getFileList(file.getAbsolutePath(),filelist); // 获取文件绝对路径
                } else  { // 判断文件名是否以\特殊符號结尾
                    String strFileName = file.getAbsolutePath();
                    System.out.println( strFileName);
                    if(fileName.contains("+")){
                        System.out.println(String.format("带+号的fileName:%s" , fileName));
                        fileName =fileName.replaceAll("\\+","");
                        System.out.println(String.format("不带+号的fileName:%s" , fileName));
                    }
                    filelist.add(file);
                }
            }
        }

    }
    private static final String REGEX_FILENAME_STR = "[a-zA-Z]{1}(:\\\\){1}([\\u4e00-\\u9fa5]|[\\w]|[\\\\])+[\\\\]{1}";

    /**
    輸出内容:
    D:\demo\test1\测试1测试文本001.txt
    D:\demo\test2\测试doc2.docx
    D:\demo\test3\E如果1测试asd图片3.bmp
    D:\demo\test3\测试3\测试+oioi+p+图片3.bmp

    带+号的fileName:测试+oioi+p+图片3.bmp
    不带+号的fileName:测试oioip图片3.bmp
    success[D:\demo\test1\测试1测试文本001.txt, D:\demo\test2\测试doc2.docx, D:\demo\test3\E如果1测试asd图片3.bmp, D:\demo\test3\测试3\测试+oioi+p+图片3.bmp]
    图片3.bmp
    */
    public static void main(String[] args) {
        List<File>  filelist =new ArrayList<>();
        getFileList("D:\\demo",filelist);
        System.out.println("success"+filelist);
        String str0 = "E:\\如果1\\测试\\asd\\图片3.bmp";
        String str1 =str0.replaceAll(REGEX_FILENAME_STR,"");
        System.out.println(str1);
    }

}
